在 Golang 要與 Redis 溝通,可以使用 Redigo,
使用 redis.Dial
進行連線,
連接後,使用實體上的方法 Do
,對 Redis 下指令,
取回之資料,使用redis.Strings
轉換成可使用的字串,
便完成基本與 Redis 的連線與溝通。
package main
import (
"fmt"
"os"
"github.com/gomodule/redigo/redis"
)
func redisConnection() redis.Conn {
const IPPort = "127.0.0.1:6379"
rc, err := redis.Dial("tcp", IPPort)
if err != nil {
panic(err)
}
return rc
}
func redisSet(key string, value string, rc redis.Conn) {
rc.Do("SET", key, value)
}
func redisSetList(key string, value []string, rc redis.Conn) {
for _, v := range value {
fmt.Println(v)
rc.Do("RPUSH", key, v)
}
}
func redisGet(key string, rc redis.Conn) string {
s, err := redis.String(rc.Do("GET", key))
if err != nil {
fmt.Println(err)
os.Exit(1)
}
return s
}
func redisGetList(key string, rc redis.Conn) []string {
s, err := redis.Strings(rc.Do("LRANGE", key, 0, -1))
if err != nil {
fmt.Println(err)
os.Exit(1)
}
return s
}
func main() {
rc := redisConnection()
defer rc.Close()
key := "KEY"
val := "VALUE"
redisSet(key, val, rc)
s := redisGet(key, rc)
fmt.Println(s)
key = "LIST"
vallist := []string{"VALUE1", "VALUE2", "VALUE3"}
redisSetList(key, vallist, rc)
sl := redisGetList(key, rc)
fmt.Println(sl)
fmt.Println(sl[0])
fmt.Println(sl[1])
fmt.Println(sl[2])
}